Skip to main content

1.3. 任务调度--LSF

EDA平台通过IBM Platform LSF来进行任务调度管理

平台队列

目前平台主要配置了以下队列:

⦁ cpu:      由平台的10台cpu节点组成的队列

⦁ bmcpu: 由平台的10台bmcpu节点组成的队列

⦁ gpu:      由平台的4台gpu节点组成的队

⦁ interactive: 交互式任务队列

⦁ normal: 普通队列,未指定队列时作业会提交到这条队列

常用操作:

1. 提交作业bsub:

bsub  -o output.log  -e error.log echo hello-world

    -o  output.log: 作业的标准输出重定向到 output.log

    -e  error.log:     作业的错误输出重定向到error.log

     bsub  -Is  myjob.sh

     -Is:  提交的作业交互方式运行,允许用户与作业进行交互

     bsub  -q [cpu | bmcpu | gpu] -m cpuXX

     -q cpu/bmcpu/gpu: 指定作业提交到哪个队列

          cpu队列:     10台 cpu节点,cpu01 ~ cpu10。每台cpu节点的硬件配置:32core * 2 @2.0GHz , 1T RAM

          bmcpu队列:10台 bmcpu节点,bmcpu01 ~ bmcpu10。每台cpu节点的硬件配置:32core * 2 @2.0GHz , 2T RAM

          gpu队列:     4台gpu节点,gpu01 ~ gpu04,每台gpu节点的硬件配置:28core * 2 @2.6GHz, 512G RAM ,  A30 * 8

      -m gpu01: 指定作业在节点gpu01上运行。 通常运行docker作业时,为了避免每次都从本地仓库pull image,会指定作业的运行节点


      bsub -n 8 -gpu "num=2"

      -n 8 :  申请8个核

      -gpu "num=2":  申请2个A30 GPU卡。需要联合 “-q gpu" 或者 " -m gpu0X"调用

2. 查看作业状态,强制结束作业

      bjobs  &  bkill $job-id

         [simonyjhe@manager01 ~]$ bsub -q cpu sleep 180 &

         [1] 10190

         [simonyjhe@manager01 ~]$ Job <10190> is submitted to queue <cpu>.

         [1]+  完成                  bsub -q cpu sleep 180

         [simonyjhe@manager01 ~]$ bjobs

         JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME

         10190  simonyj RUN  normal     manager01       cpu02        sleep 180  Dec  1 01:08

   [simonyjhe@manager01 ~]$ bkill 10190

         Job <10190> is being terminated

         [simonyjhe@manager01 ~]$ bjobs

         No unfinished job found

         [simonyjhe@manager01 ~]$

3. 查看节点的负载:bhosts  

  step1  

4. 任务提交模板:

#!/bin/sh 

#BSUB -R "select[gpu_musei<Used_memory] (i, gpu_id; used_memory:24576-Required_mem(MiB)"

#BSUB -m "gpu01" # (CAN BE "cpu0x, gpu0x, bmcpu0x", use bhosts for detail)

#BSUB -J YOUR_JOB_NAME

#BSUB -n JOB_NUM(upper limit: 16/user)

#BSUB -gpu "num=NUM"

#BSUB -o YOUR_OUTPUT_FILE

#BSUB -e YOUR_ERROR_FILE

#BSUB -W RUN_TIME_LIMIT


module load anaconda3

module load YOUR_CUDA_VERSION #(ps: check the available packages by "module avail")


source activate YOUR_PYTHON_ENV YOUR_COMMAND